package com.lekang.le.mapper;

import java.util.List;
import com.lekang.le.domain.ElderlySzh;
import com.lekang.le.domain.FamilyMember;
import com.lekang.le.domain.WxUserBinding;
import org.apache.ibatis.annotations.Param;

/**
 * 微信用户绑定老人Mapper接口
 * 
 * @author lekang
 * @date 2025-01-27
 */
public interface WxUserBindingMapper 
{
    /**
     * 查询微信用户绑定老人
     * 
     * @param id 微信用户绑定老人主键
     * @return 微信用户绑定老人
     */
    public WxUserBinding selectWxUserBindingById(Long id);

    /**
     * 查询微信用户绑定老人列表
     * 
     * @param wxUserBinding 微信用户绑定老人
     * @return 微信用户绑定老人集合
     */
    public List<WxUserBinding> selectWxUserBindingList(WxUserBinding wxUserBinding);

    /**
     * 新增微信用户绑定老人
     * 
     * @param wxUserBinding 微信用户绑定老人
     * @return 结果
     */
    public int insertWxUserBinding(WxUserBinding wxUserBinding);

    /**
     * 修改微信用户绑定老人
     * 
     * @param wxUserBinding 微信用户绑定老人
     * @return 结果
     */
    public int updateWxUserBinding(WxUserBinding wxUserBinding);

    /**
     * 删除微信用户绑定老人
     * 
     * @param id 微信用户绑定老人主键
     * @return 结果
     */
    public int deleteWxUserBindingById(Long id);

    /**
     * 批量删除微信用户绑定老人
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteWxUserBindingByIds(Long[] ids);

    /**
     * 根据微信用户ID和老人ID查询绑定关系
     * 
     * @param wxUserId 微信用户ID
     * @param elderlyId 老人ID
     * @return 绑定关系
     */
    public WxUserBinding selectByWxUserIdAndElderlyId(@Param("wxUserId") Long wxUserId, @Param("elderlyId") Long elderlyId);

    /**
     * 根据身份证号查询老人信息
     * 
     * @param idCard 身份证号
     * @return 老人信息
     */
    public ElderlySzh selectElderlyByIdCard(@Param("idCard") String idCard);

    /**
     * 根据微信用户ID查询绑定的老人列表
     * 
     * @param wxUserId 微信用户ID
     * @return 绑定关系列表
     */
    public List<WxUserBinding> selectByWxUserId(@Param("wxUserId") Long wxUserId);

    /**
     * 新增老人信息
     * 
     * @param elderly 老人信息
     * @return 结果
     */
    public int insertElderly(ElderlySzh elderly);

    /**
     * 新增家属信息
     * 
     * @param familyMember 家属信息
     * @return 结果
     */
    public int insertFamilyMember(FamilyMember familyMember);

    /**
     * 根据用户ID查询微信用户信息
     * 
     * @param userId 用户ID
     * @return 用户信息
     */
    public com.lekang.common.core.domain.entity.SysUser selectUserById(@Param("userId") Long userId);
}
